package com.qingcloud.adminbackend.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qingcloud.adminbackend.entity.stationgroup.SysStationGroupEquipment;
import com.qingcloud.adminbackend.entity.sysstation.SysStationEquipment;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 设备组和设备关系表 Mapper 接口
 * </p>
 *
 * @author luozehua
 * @since 2018-11-16
 */
public interface SysStationGroupEquipmentMapper extends BaseMapper<SysStationGroupEquipment> {

    Integer removeByGroupIds(@Param("groupIds") List<String> groupIds);

    /**
     * 通过站点ID或者名称查询设备组编号
     *
     * @param stationIdOrName
     * @return
     */
    List<String> findStations(@Param("stationIdOrName") String stationIdOrName);

    /**
     * 删除设备与设备组绑定关系
     *
     * @param sysStationGroupEquipments
     */
    void deleteStationGroupEquipment(@Param("sysStationGroupEquipments") List<SysStationGroupEquipment> sysStationGroupEquipments);

    /**
     * 删除设备与设备组绑定关系
     *
     * @param stationGroupEquipments
     */
    void insertStationGroupEquipment(@Param("stationGroupEquipments") List<SysStationGroupEquipment> stationGroupEquipments);

    /**
     * 查询设备与设备组绑定关系
     *
     * @param sysStationEquipments
     * @return
     */
    List<SysStationGroupEquipment> findStationGroupEquipment(@Param("sysStationEquipments") List<SysStationEquipment> sysStationEquipments);

    /**
     * 按设备编号，删除只有设备编号的数据
     *
     * @param equipmentId 设备编号
     * @return
     */
    int deleteByBind(@Param("equipmentId") String equipmentId);

    /**
     * 按设备编号，解绑设备组中的设备编号，保留有监测点编号的数据
     *
     * @param equipmentId 设备编号
     * @return
     */
    int updateByBindEquipment(@Param("equipmentId") String equipmentId);

    /**
     * 按监测点编号，删除设别编号是空的数据
     *
     * @param stationId 监测点编号
     * @return
     */
    int deleteByBindStation(@Param("stationId") String stationId);

    /**
     * 按监测点编号，解绑设备组中的监测点编号，保留有设备编号的数据
     *
     * @param stationId 监测点编号
     * @return
     */
    int updateByBindStation(@Param("stationId") String stationId);
}
